package tc.de.krawallmann.slick.game;

import java.util.List;

import tc.de.krawallmann.twl.AbstractTWLStateBasedGame;

/**
 * The Class AbstractGame.
 * @author KrawallMann
 * @version 1.0
 */
public abstract class AbstractGame extends AbstractTWLStateBasedGame {

	/**
	 * Instantiates a new abstract game.
	 * 
	 * @param name
	 *            the name
	 */
	public AbstractGame(final String name) {
		super(name);
	}

	/**
	 * Gets the actions.
	 * 
	 * @return the actions
	 */
	public abstract List<String> getActions();

	/**
	 * Gets the default action keys.
	 * 
	 * @return the default action keys
	 */
	public abstract List<Integer> getDefaultActionKeys();

	/**
	 * Gets the icon16x16.
	 * 
	 * @return the icon16x16
	 */
	public abstract String getIcon16x16();

	/**
	 * Gets the icon24x24.
	 * 
	 * @return the icon24x24
	 */
	public abstract String getIcon24x24();

	/**
	 * Gets the icon32x32.
	 * 
	 * @return the icon32x32
	 */
	public abstract String getIcon32x32();

	/**
	 * Gets the release date.
	 * 
	 * @return the release date
	 */
	public abstract long getReleaseDate();

}
